package br.com.iss.transporteCia.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;

import br.com.iss.transporteCia.view.SistemaPrincipal;

@Entity
@Table(name = "VIAGEM")
public class Viagem {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "VIAGEM_ID", unique = true, nullable = false)
	private Long id;

	@Column(name = "VIAGEM_DATAINICIO", length = 150, nullable = true)
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date dataInicio;

	@Column(name = "VIAGEM_DATATERMINO", length = 150, nullable = true)
	@Temporal(javax.persistence.TemporalType.DATE)
	private Date dataTermino;

	@ManyToOne
	@JoinColumn(name = "FROTA_ID")
	private Frota frota;

	public Viagem() {
		super();
	}

	public Viagem(Date dataInicio, Date dataTermino, Frota frota) {
		this.dataInicio = dataInicio;
		this.dataTermino = dataTermino;
		this.frota = frota;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Date getDataInicio() {
		return dataInicio;
	}

	public void setDataInicio(Date dataInicio) {
		this.dataInicio = dataInicio;
	}

	public Date getDataTermino() {
		return dataTermino;
	}

	public void setDataTermino(Date dataTermino) {
		this.dataTermino = dataTermino;
	}

	public Frota getFrota() {
		return frota;
	}

	public void setFrota(Frota frota) {
		this.frota = frota;
	}
	
	@Override
    public String toString() {
        return this.getId() + " - " + this.getFrota().getPlacaTracao();
    }
	
	public void salvar() {
		if (this.getId() != null) {
			CrudUtil.atualizar(this);
		} else {
			CrudUtil.salvar(this);
		}
		SistemaPrincipal.getInstance().removeTela();
	}
}